import QRCode from 'qrcode'
import {message} from '@/libs/global/antDesignVue'

interface useQrcodeOption {
  id: string
  toCanvasOption?: QRCode.QRCodeRenderersOptions
}

function useQrcode(option?: useQrcodeOption) {
  const interval = ref(60) //二维码失效时间 单位（s）
  const isOverTimeTimer = ref<NodeJS.Timeout>()
  const isOvertime = ref(false)
  function drawQrcode(qrData?: string) {
    isOvertime.value = false
    if (option && option.id) {
      if (qrData) {
        QRCode.toCanvas(
          document.getElementById(option.id),
          qrData,
          option.toCanvasOption || {},
          function (error) {
            if (error) {
              console.error(error)
            } else {
              if (isOverTimeTimer.value) clearTimeout(isOverTimeTimer.value)
              isOverTimeTimer.value = setTimeout(() => {
                isOvertime.value = true
              }, 60 * 1000)
            }
          }
        )
      } else {
        message.error('二维码参数错误')
      }
    } else {
      console.error('请输入canvasId')
    }
  }
  return {
    drawQrcode,
    isOvertime
  }
}

export default useQrcode
